	     Open Fabrics Enterprise Distribution (OFED)
		    mthca in OFED 1.1 Release Notes
			  
			   October 2006


===============================================================================
Table of Contents
===============================================================================
1. Overview
2. New Features
3. Fixed Bugs
4. Known Issues

===============================================================================
1. Overview
===============================================================================
mthca is the low level driver implementation for all Mellanox Technologies HCAs.

mthca Available Parameters
--------------------------
In order to set mthca parameters, add the following line to /etc/modpobe.conf:

	options ib_mthca parameter=<value>

mthca parameters:

  - tune_pci               increase PCI burst from the default set by BIOS if nonzero
  - msi	                   attempt to use MSI if nonzero
  - msi_x                  attempt to use MSI-X if nonzero
  - fw_cmd_doorbell        post FW commands through doorbell page if nonzero (and
                           supported by FW)
  - catas_reset_disable    disable device reset on a catastrophic event if nonzero


===============================================================================
2. New Features
===============================================================================
1. Catastrophic event reset: catastrophic event handling has been expanded
   to include resetting the device. After generating the IB_EVENT_DEVICE_FATAL
   async event, mthca now resets the device (assuming that the
   catas_reset_disable module parameter described above is zero).

   Note that the reset entails removing then adding the device. For the device
   to complete the reset, all user-level applications using device resources
   directly via the user verbs layer must release those resources. Thus, such
   applications should register to receive async events, should detect the
   IBV_EVENT_DEVICE_FATAL event, and should release all resources for that
   device upon receiving such an event.


===============================================================================
3. Fixed Bugs
===============================================================================
1. mthca no longer misses restoring the following PCI-X/PCI Express
   registers after reset:
     o  PCI-X device: PCI-X command register
     o  PCI-X bridge: upstream and downstream split transaction registers
     o  PCI Express: PCI Express device control and link control registers
2. Fence bit is now supported properly.
3. Fixed modify_qp, modify_srq and resize_cq methods to be fully reentrant.

===============================================================================
4. Known Issues
===============================================================================
1. UAR size other than 8MB prevents mthca driver loading. The default UAR
   size is 8MB. If it is changed, the following error message will be logged to
   /var/log/messages upon attempt to load the mthca driver:
   ib_mthca 0000:04:00.0: Missing UAR, aborting.

2. If a user level application that uses multicast receives a control signal
   in the process of detaching from a multicast group, its QP may remain a
   member of the multicast group (in HCA).
   Workaround: Destroy the multicast group after detaching the QP from it.

3. On MemFree devices, RC QPs can be created with a maximum of (max_sge - 3)
   entries only.

4. Performance degradation due to wrong BIOS configuration:
   The PCI Express spec. requires BIOS to set the MaxReadReq register
   for each card for maximum performance and stability. 

   If you are seeing bandwidth performance degradation, you can try forcing
   the card to behave out of PCI Express spec. by setting the tune_pci=1 module
   parameter.  This tune_pci=1 option was the default setting in OFED
   1.0, which might have masked performance degradation on some systems.

   If tune_pci=1 improves bandwidth, please report the issue to your 
   BIOS vendor. Please note that Mellanox Technologies does not recommend using
   tune_pci=1 in production systems: working with tune_pci=1 option set is
   untested and is known to trigger stability issues on some platforms.

